iT邦幫忙

2023 iThome 鐵人賽

DAY 9
0
Modern Web

職缺資訊平台—Jobscanner系列 第 9

[前置作業] Firestore ?

  • 分享至 

  • xImage
  •  

資料庫類型?

大致可分為兩類 關聯式資料庫(SQL)以及 非關聯式資料庫(NoSQL),主要差異在於:儲存的資料結構不同。

https://ithelp.ithome.com.tw/upload/images/20230924/201281221hjEApXhAZ.png
圖取自 How to choose a database server

關聯式資料庫 - SQL

以包含欄位、資料列的資料表(table)來儲存資訊。透過多個資料表的關聯性,了解資料之間的關係。

  • 資料表中的每一列資料都有唯一的 id 作為識別 (primary key)
  • foreign key 來建立不同資料表間的關係,產生關聯
  • 必須定義清楚所有的資料欄位以及資料的類型
  • 使用 SQL 語言做相關操作
  • 例如:MySQL、PostgreSQL、MariaDB...等

非關聯式資料庫 - NoSQL

not only SQL 的意思,不使用資料表的方式儲存資料。

  • 利用 documentkey-valuegraph 等方式來儲存資料
  • 使用上較為彈性,適合資料結構變動大的需求,不須事先定義資料類型
  • 需透過資料庫各自的語法做操作,沒有標準語言

Google Cloud 資料庫

以下內容來自 Google Cloud databases

Google Cloud 提供各種不同資料庫的選擇:

資料庫類型 產品服務
關聯式 CloudSQL
關聯式 AlloyDB for PostgreSQL
關聯式 Cloud Spaner
關聯式 Bare Metal Solution for Oracle
關聯式 BigQuery
非關聯式 (Key-value) Cloud Bigtable
非關聯式 (Document) Firestore
非關聯式 (Document) Firebase Realtime Database
非關聯式 (Im-memory) Memorystore

Firestore 是什麽?

內容參考自 Cloud Firestore 官方文件

Firebase 最新推出的資料庫,所有資料使用 documentscollections 方式儲存,document 就像是 JSON 物件,以 key-value 的形式表示 data,而多個 document 可以被存放在 collection 中。

一個 collection (集合) 可以包含多個 document(文件),一個 document 中可以有多組 data (資料),每一筆資料皆為 key-value 的形式。

主要特色

  • 彈性大:使用 document 集合的方式儲存資料
  • 支援離線:Firestore 會將資料快取一份在 Client 端,讓應用程式在離線時也可以寫入、讀取以及查詢。當裝置恢復連線,Firestore 會再將 Client 端的資料同步到雲端資料庫
  • 即時更新

費用

免費方案 可使用額度
儲存資料上限 1 GiB
Document 讀取 50,000次 / 天
Document 寫入 20,000次 / 天
Docuement 刪除 20,000次 / 天

小結

再度推薦 The Cloud Girl 的插圖,以視覺化方式說明 什麽是 Firestore怎麼使用資料儲存方式
https://ithelp.ithome.com.tw/upload/images/20230924/20128122jFVpiNVNIp.jpg
圖取自 The Cloud Girl

Firestore:

  • 全球即時同步資料
  • 支援離線存取
  • 擴充彈性
  • 服務可用性的等級 (產品可用性):99.999%
  • 可作為 Backend-as-a-Service,允許應用程式直接連線取用資料
  • 提供兩種模式使用:Client 端 & Serve 端
  • 以文件以及集合方式儲存資料

參考資料

Which Database should I use ?
Oracle - 什麽是 NoSQL?
Choose a Database: Cloud Firestore or Realtime Database


上一篇
[前置作業] Cloud Functions 實作 — 今日放映
下一篇
[前置作業] 建立 Firestore
系列文
職缺資訊平台—Jobscanner31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言